Systems and methods for managing cybersecurity alerts

ABSTRACT

A system and method for setting alert thresholds related to cybersecurity ratings of one or more affiliate entities. An example method includes: obtaining entity data including cybersecurity event data for an affiliate entity; calculating a time-series cybersecurity rating for the affiliate entity based on the entity data; associating an alert reporting threshold with the time-series cybersecurity rating, wherein a comparison of the alert reporting threshold to the time-series cybersecurity rating determines a number of alerts reported for the affiliate entity; applying an alternative alert reporting threshold against the time-series cybersecurity rating to determine an alternative number of alerts reported for the affiliate entity; and updating the alert reporting threshold for the time-series cybersecurity rating to the alternative alert reporting threshold.

TECHNICAL FIELD

The present disclosure generally relates to methods and systems for determining the extent to which certain affiliates of an organization should be monitored. Some embodiments described herein relate specifically to methods and systems for managing a quantity and/or frequency of alerts that are sent to the organization based on cybersecurity risks or threats presented by one or more of the organization's affiliates.

BACKGROUND

Businesses, corporations, or organizations more generally often outsource work to third parties. As a result, organizations are connected to numerous third party affiliates. These connections or relationships leave organizations vulnerable to the security implementations of these third party affiliates. In order to reliably monitor dozens, hundreds, or even thousands of third party affiliates, organizations must dedicate a large amount of resources to manage this task.

For organizations with a large quantity of third party affiliates, monitoring each and every affiliate proves difficult and expensive. Staff dedicated to such monitoring is generally capable of handling only a fraction of an organization's affiliates, and there is no guarantee that they can do so accurately. Typically, hired staff can only monitor a fraction of the affiliates, especially as the organization grows and expands its affiliate network. Hiring more staff to handle the ever expanding affiliate network of a growing organization generally does not provide enough speed and analysis to accurately monitor such affiliates.

Blindly monitoring affiliates can be an overburdensome task for an organization, and can often lead to false positives (e.g., triggering alarms or alerts when unnecessary) and/or false negatives (e.g., missing critical events that warrant further investigation). What is needed is a method and supporting systems to allow organizations to dynamically adjust cybersecurity event reporting thresholds across their network of affiliates.

SUMMARY

In general, the present disclosure relates to systems and methods for generating and sending alerts to a company, organization, individual, or other alert recipient when one or more affiliates of the alert recipient are associated with a high or unreasonable cybersecurity threat or risk. Cybersecurity data for an affiliate entity (or multiple affiliate entities) can be obtained and used to generate a cybersecurity rating for the affiliate entity, as described herein. Based on the value of the cybersecurity rating and/or on a rate at which the value is changing (e.g., a weekly drop rate), an alert can be sent to the alert recipient, to warn the alert recipient of a potential cybersecurity threat or risk associated with the affiliate entity. In some instances, however, the alert recipient may receive an inappropriate number or frequency of alerts. When the number or frequency of alerts is too high, for example, the alert recipient may become numb to the alerts, may stop taking the alerts seriously, and/or may become frustrated by repeated reminders. Alternatively, when the number or frequency of alerts is too low, the alert recipient may not take the alerts seriously, may fail to recognize a cybersecurity threat, and/or may not take appropriate corrective action.

Advantageously, the systems and methods described herein allow alert recipients to manage the number of automated alerts they receive based on cybersecurity ratings of one or more affiliate entities. The systems and methods allow an alert reporting threshold to be optimized, so that a comparison of the alert reporting threshold to a cybersecurity risk presented by an affiliate entity results in a desired number of alerts. In some instances, for example, a security rating time history (also referred to herein as a time-series cybersecurity rating) for an affiliate entity can be generated and compared with the alert reporting threshold, and the alert reporting threshold can be adjusted until a desired number of alerts for the time history is obtained, for example, using automated and/or iterative techniques. The resulting alert reporting threshold can be used to automatically generate and send future alerts (e.g., automated electronic messages) for the affiliate entity. In other words, the disclosed method provides solutions to problems in the software arts. Thus, the improved numerical methods and logical recommendations described herein constitute improvements to computer-related technology for reasons similar to those articulated by the Federal Circuit in Enfish, LLC v. Microsoft Corp, and are not abstract ideas.

In general, one innovative aspect of the subject matter described in the present disclosure can be embodied in a computer-implemented method of setting alert thresholds related to cybersecurity ratings of one or more affiliate entities. The method includes: obtaining entity data including a plurality of entity data sets, each entity data set associated with a respective affiliate entity from a plurality of affiliate entities and including cybersecurity event data associated with each respective affiliate entity; calculating a time-series cybersecurity rating for one or more of the affiliate entities based on the respective entity data set; associating an alert reporting threshold with the time-series cybersecurity rating, wherein a comparison of the alert reporting threshold to the time-series cybersecurity rating determines a number of alerts reported for the one or more affiliate entities; applying an alternative alert reporting threshold against the time-series cybersecurity rating to determine an alternative number of alerts reported for the one or more affiliate entities; and updating the alert reporting threshold for the time-series cybersecurity rating to the alternative alert reporting threshold.

In certain examples, the plurality of affiliate entities can include affiliates of an intended recipient of the alerts. The time-series cybersecurity rating can include a history of cybersecurity ratings during a previous time period. The alert reporting threshold can include a threshold cybersecurity rating. The alert reporting threshold can include a threshold rate of change in the time-series cybersecurity rating. Alerts can be generated periodically while the time-series cybersecurity rating is either above or below the alert reporting threshold. Applying an alternative alert reporting threshold can include iterating on the alert reporting threshold to achieve a desired number of alerts reported for the one or more affiliate entities during a previous time period. Iterating on the alert reporting threshold can include receiving a user-specified desired number of alerts. Applying an alternative alert reporting threshold can include iterating on the alert reporting threshold until a desired number of affiliate entities from the one or more affiliate entities trigger alerts during a previous time period. The method can include sending alerts to an intended recipient during a future time period using the updated alert reporting threshold.

In another aspect, the subject matter described in the present disclosure relates to a system having one or more computer systems programmed to perform operations including: obtaining entity data including a plurality of entity data sets, each entity data set associated with a respective affiliate entity from a plurality of affiliate entities and including cybersecurity event data associated with each respective affiliate entity; calculating a time-series cybersecurity rating for one or more of the affiliate entities based on the respective entity data set; associating an alert reporting threshold with the time-series cybersecurity rating, wherein a comparison of the alert reporting threshold to the time-series cybersecurity rating determines a number of alerts reported for the one or more affiliate entities; applying an alternative alert reporting threshold against the time-series cybersecurity rating to determine an alternative number of alerts reported for the one or more affiliate entities; and updating the alert reporting threshold for the time-series cybersecurity rating to the alternative alert reporting threshold.

In some implementations, the plurality of affiliate entities can include affiliates of an intended recipient of the alerts. The time-series cybersecurity rating can include a history of cybersecurity ratings during a previous time period. The alert reporting threshold can include a threshold cybersecurity rating. The alert reporting threshold can include a threshold rate of change in the time-series cybersecurity rating. Alerts can be generated periodically while the time-series cybersecurity rating is either above or below the alert reporting threshold. Applying an alternative alert reporting threshold can include iterating on the alert reporting threshold to achieve a desired number of alerts reported for the one or more affiliate entities during a previous time period. Iterating on the alert reporting threshold can include receiving a user-specified desired number of alerts. Applying an alternative alert reporting threshold can include iterating on the alert reporting threshold until a desired number of affiliate entities from the one or more affiliate entities trigger alerts during a previous time period. The operations can include sending alerts to an intended recipient during a future time period using the updated alert reporting threshold.

In another aspect, the subject matter described in the present disclosure relates to a non-transitory computer-readable medium having instructions stored thereon that, when executed by one or more computer processors, cause the one or more computer processors to perform operations including: obtaining entity data including a plurality of entity data sets, each entity data set associated with a respective affiliate entity from a plurality of affiliate entities and including cybersecurity event data associated with each respective affiliate entity; calculating a time-series cybersecurity rating for one or more of the affiliate entities based on the respective entity data set; associating an alert reporting threshold with the time-series cybersecurity rating, wherein a comparison of the alert reporting threshold to the time-series cybersecurity rating determines a number of alerts reported for the one or more affiliate entities; applying an alternative alert reporting threshold against the time-series cybersecurity rating to determine an alternative number of alerts reported for the one or more affiliate entities; and updating the alert reporting threshold for the time-series cybersecurity rating to the alternative alert reporting threshold.

Other embodiments of this aspect include corresponding systems, apparatus, and computer programs recorded on one or more computer storage devices, each configured to perform the actions of the method. A system of one or more computers can be configured to perform particular actions by virtue of having software, firmware, hardware, or a combination of them installed on the system (e.g., instructions stored in one or more storage devices) that in operation causes or cause the system to perform the actions. One or more computer programs can be configured to perform particular actions by virtue of including instructions that, when executed by data processing apparatus, cause the apparatus to perform the actions.

The details of one or more embodiments of the subject matter described in this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, the drawings, and the claims.

The foregoing Summary, including the description of some embodiments, motivations therefor, and/or advantages thereof, is intended to assist the reader in understanding the present disclosure, and does not in any way limit the scope of any of the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

In the drawings, like reference characters generally refer to the same parts throughout the different views. Also, the drawings are not necessarily to scale, emphasis instead generally being placed upon illustrating the principles of the invention. In the following description, various embodiments of the present invention are described with reference to the following drawings, in which:

FIG. 1 is a plot of a cybersecurity rating time history, in accordance with certain embodiments.

FIG. 2 is a plot of a cybersecurity rating time history and an alert reporting threshold, in accordance with certain embodiments.

FIG. 3 is a plot of a cybersecurity rating time history and an alert reporting threshold, in accordance with certain embodiments.

FIG. 4 is a plot of a number of cybersecurity alerts sent each week to an alert recipient over time, for various alert reporting thresholds, in accordance with certain embodiments.

FIG. 5 is a plot of a number of weekly cybersecurity alerts versus an alert reporting threshold, in accordance with certain embodiments.

FIG. 6 is a plot of a weekly drop in a cybersecurity rating time history, in accordance with certain embodiments.

FIG. 7 is a plot of a weekly drop in a cybersecurity rating time history and an alert reporting threshold, in accordance with certain embodiments.

FIG. 8 is a plot of a number of cybersecurity alerts sent each week to an alert recipient over time, for various alert reporting thresholds, in accordance with certain embodiments.

FIG. 9 is a plot of a number of weekly cybersecurity alerts versus an alert reporting threshold, in accordance with certain embodiments.

FIG. 10 is a flowchart of a method of setting alert thresholds related to cybersecurity ratings of one or more affiliate entities, in accordance with certain embodiments.

FIG. 11 is a schematic block diagram of an example computer system for determining and sending a desired number or frequency of cybersecurity alerts, in accordance with certain embodiments.

DETAILED DESCRIPTION

As used herein, the term “affiliate” or “affiliate entity” may refer to a company, organization, individual, or other entity that interacts or otherwise conducts business with an alert recipient.

As used herein, “alert recipient” may refer to a company, organization, individual, or other entity that receives alerts corresponding to cybersecurity risks or threats associated with an affiliate or affiliate entity.

As used herein, the term “alert” may refer to a message or notification (e.g., a text message, email, phone call, or letter) sent to an alert recipient. An alert can be generated and sent to the alert recipient when the systems and methods described herein identify a cybersecurity threat or risk associated with an affiliate or affiliate entity.

As used herein, “time series” or “time-series” may refer to a series of parameter values in time order, but not necessarily values that are equally spaced in time. The parameter for the time series may be, for example, a cybersecurity rating or a rate of change (e.g., a weekly drop) in the cybersecurity rating. A time series may also be referred to herein as a “time history.”

In various examples, a security profile of an affiliate entity can reflect the past, present, and/or future security characteristics of the affiliate entity. In some embodiments, the security profile may reflect security risks to which the affiliate entity is exposed balanced by countermeasures that the affiliate entity has taken or can take to mitigate the security risk. As referred to herein, a security profile of an affiliate entity can be or include a security rating (also referred to herein as a “cybersecurity rating”) for the affiliate entity. A security rating may be quantitative or qualitative. For example, a quantitative security rating may be expressed as a number within a predetermined range (e.g., between 300 and 900, as provided by BitSight Technologies, Inc. of Boston, Mass., USA).

Examples of determining security ratings of affiliate entities can be found in at least U.S. Patent Application Publication No. 2016/0205126 published on Jul. 14, 2016 and titled “Information Technology Security Assessment System,” U.S. Pat. No. 9,973,524 issued on May 15, 2018 and titled “Information Technology Security Assessment System,” U.S. Pat. No. 9,830,569 issued on Nov. 28, 2017 and titled “Security Assessment Using Service Provider Digital Asset Information,” and U.S. patent application Ser. No. 16/514,771 filed on Jul. 17, 2019 and titled “Systems and Methods for Generating Security Improvement Plans for Entities,” each of which is incorporated herein by reference in its entirety. For example, a security rating can be generated by collecting information about an affiliate entity's computer system, e.g., information technology assets that the affiliate entity controls, uses, or is affiliated with. Examples of asset ownership include control and operation of an Internet Protocol (IP) network address range or computer services such as web servers residing within that address block. Information about affiliate entities also includes relationships such as subsidiaries, affiliates, etc., that describe affiliate entity association. External data can be collected and include multiple data types, such as breach disclosures, block lists, configuration parameters, malware servers, reputation metrics, suspicious activity, spyware, white lists, compromised hosts, malicious activity, spam activity, vulnerable hosts, phishing, user behavior, or email viruses. To determine the security rating for an affiliate entity, the system aggregates some or all of the collected data, which can be referred to herein as “entity data.”

FIG. 1 is a plot of an example time-series security rating 100 for an affiliate entity during a time period corresponding to the year 2019. In general, the security rating 100 provides an indication of the cybersecurity risk, threats, and/or vulnerabilities associated with the affiliate entity. In examples described herein, a low security rating 100 is indicative of a high cybersecurity risk or threat, and a high security rating 100 is indicative of a low cybersecurity risk or threat. It is understood, however, that the opposite can be true for the security rating 100, such that a high security rating 100 can be associated with a high risk or threat, and a low security rating 100 can be associated with a low risk or threat. As the figure indicates, the security rating 100 can vary over time, for example, as new cybersecurity event data for the affiliate entity is collected and used to update the security rating 100.

In various examples, it is desirable to monitor the security rating 100 for the affiliate entity and send alerts to one or more alert recipients when the security rating 100 indicates the affiliate entity is associated with a high cybersecurity risk or threat. In such instances, for example, one or more automated alerts can be sent by email, text messaging, phone, and/or other messaging services to the alert recipients. Alternatively, when the cybersecurity risk or threat is low, there may be no need to send or report such alerts.

Referring to FIG. 2, in some examples, an alert reporting threshold 200 can be used to trigger the sending of alerts based on the security rating 100. In the depicted example, the alert reporting threshold 200 has been set to 650, such that alerts are sent when the security rating 100 is below 650, and no alerts are sent when the security rating 100 is at or above 650. By comparison, FIG. 3 depicts an example in which the alert reporting threshold 200 has been set to 350. In this case, alerts are sent when the security rating 100 is below 350, and no alerts are sent when the security rating 100 is at or above 350. As the two figures indicate, a higher threshold 200 results in more instances when the security rating 100 is below the threshold 200, and this generally results in more opportunities for alerts to be sent. For example, if one alert is sent for each day that the security rating 100 is below the threshold 200, the example in FIG. 2 would result in a total of 261 alerts, and the example in FIG. 3 would result in a total of 17 alerts. Likewise, if one alert is sent for each hour that the security rating 100 is below the threshold 200, the example in FIG. 2 would result in a total of about 6300 alerts, and the example in FIG. 3 would result in a total of about 400 alerts. Accordingly, selection of the threshold 200 can have a significant influence on the number of alerts generated and sent to affiliated alert recipients.

In general, alerts can be sent periodically (e.g., hourly, daily, weekly, or monthly) during a time that the security rating 100 is below the threshold 200. In such instances, a frequency at which the alerts are sent can be constant (e.g., once per day). Alternatively or additionally, the frequency can vary over time and/or can be based on a difference between the threshold 200 and a current value of the security rating 100, with a larger difference resulting in a higher alert frequency. In certain examples, an alert can be sent each time the security rating 100 drops from being above the threshold 200 to being below the threshold 200.

In certain implementations, the systems and methods described herein can determine a total number or frequency of alerts that will be sent to an alert recipient based on cybersecurity risks or threats occurring across a portfolio or group of affiliate entities. For example, the systems and methods can determine a number or frequency of alerts that will be sent for each affiliate entity during one or more time periods (e.g., each week in 2019), based on a security rating for each affiliate entity. The systems and methods can then aggregate or sum the number or frequency of alerts for all the affiliate entities to obtain a total number of alerts or an overall alert frequency for the group of affiliate entities during the time periods.

For example, FIG. 4 is a time history of a total number of alerts sent to an alert recipient each week based on security ratings for a group of affiliate entities, for various values of the alert reporting threshold, during a time frame beginning around April 2017 and ending around December 2018. As the figure indicates, an alert threshold of 700 resulted in a total of about 25 alerts per week across all affiliate entities, on average, and a few instances 402 when more than 100 alerts per week were sent for all affiliate entities. By comparison, an alert threshold of 400 resulted in less than 5 alerts per week, on average.

FIG. 5 is a plot of a total number of alerts per week versus the alert reporting threshold, for the same group of affiliate entities and same time frame presented in FIG. 4. As FIG. 5 indicates, the number of alerts generally increases as the alert reporting threshold increases.

In various examples, the systems and methods described herein can allow the alert reporting threshold to be adjusted, so that an optimal or desired number of alerts is generated for one or more affiliate entities, going forward. For example, the systems and methods can adjust the threshold and determine a number of alerts that would have been generated for a security rating during a previous time period, such as the year 2019. Referring again to FIGS. 2 and 3, for example, a user can adjust the threshold 200 for the security rating 100, and the systems and methods can calculate or recalculate a number of alerts that would have been generated for each value of the threshold 200. The calculated number of alerts can be, for example, the total number of alerts generated for 2019. Alternatively or additionally, the calculated number of alerts can be a rate of alert generation, such as a minimum, average, or maximum number of alerts per hour, day, week, or month, during 2019. With this approach, the user can adjust the threshold value (e.g., via trial and error) until a preferred threshold is identified that results in a desired number or frequency of alerts for the security rating 100. The user can then apply the preferred threshold to a future time period, such as the year 2020. For example, the user can set the alert reporting threshold for the affiliate entity (and/or other affiliate entities) to be equal to the preferred threshold, so that future alerts are generated according to the preferred threshold. Additionally or alternatively, in some examples, the alert reporting threshold can be applied across a group of affiliate entities and a total number or frequency of alerts can be determined, for all the affiliate entities during a time period (e.g., 2019). The alert reporting threshold can be varied until a desired number or frequency of alerts is sent for all the affiliate entities. The number or frequency of alerts can be determined daily, weekly, monthly, or for other discrete time periods.

In some instances, this approach of adjusting the threshold until a desired number or frequency of alerts is obtained for a previous time period can be performed automatically. For example, a user can specify a desired number or frequency of alerts, and the systems and methods can adjust the threshold (e.g., in an iterative manner) until a preferred threshold is identified that results in the desired number or frequency of alerts for that time period. The systems and methods can use an iterative technique such as, for example, Newton's method, the bisection method, and/or interpolation to find the preferred threshold. The systems and methods can choose an initial threshold and then automatically adjust the threshold until the desired number of alerts is obtained.

Alternatively or additionally, in some examples, alerts can be generated based on a rate at which the security rating is changing. For example, FIG. 6 is a plot of a time history of a weekly drop 600 in a security rating (e.g., the security rating 100) for the 2019 time period. In the depicted example, the weekly drop 600 represents a fractional drop in the security rating, which can be calculated as follows: Fractional Drop=(Initial Value−Current Value)/Initial Value, where the Current Value is the security rating on the current day, and the Initial Value is the security rating from one week (seven days) ago. The fractional drop can be calculated weekly (as shown in the figure, to obtain the weekly drop 600), hourly, daily, monthly, or for other time intervals. In general, when the weekly drop 600 is positive, the security rating is decreasing, and when the weekly drop is negative, the security rating is increasing. A high weekly drop can indicate the security rating is decreasing rapidly, which can be indicative of an increasing cybersecurity risk or threat. It can be desirable to send or report alerts to affiliated alert recipients during such instances. A threshold value can be used to trigger alerts based on the drop in security rating, such as the weekly drop 600, hourly drop, daily drop, or monthly drop.

For example, FIG. 7 is a plot of the weekly drop 600 in which an alert reporting threshold 700 has been set to 0.1 (or 10%). As the figure indicates, when the weekly drop 600 is above the threshold 700, alerts may be sent. Otherwise, when the weekly drop 600 is below or equal to the threshold 700, no alerts may be sent. A higher value for the threshold 700 generally results in fewer alerts being generated and a lower value of the threshold 700 results in more alerts being generated. In various examples, alerts can be sent periodically (e.g., hourly, daily, weekly, or monthly) during a time when the weekly drop exceeds the threshold 700. In such instances, a frequency at which alerts are sent can be constant (e.g., once per day). Alternatively or additionally, the frequency can vary over time and/or can be based on a difference between the weekly drop 600 and the threshold 700, with a larger difference resulting in a higher alert frequency. In certain examples, an alert can be sent each time the weekly drop 600 transitions from being below the threshold 700 to being above the threshold 700.

FIG. 8 is a time history of a total number of alerts sent to an alert recipient each week based on weekly drop for a group of affiliate entities, for various values of the alert reporting threshold, during a time frame beginning around April 2017 and ending around December 2018. A threshold of 0.03 in this example resulted in about 100 alerts per week across all affiliate entities, on average, and a few instances 802 when more than 200 alerts per week were sent for all affiliate entities. By comparison, an alert threshold of 0.09 resulted in less than about 10 alerts per week, on average, with no large alert spikes.

FIG. 9 is a plot of the number of alerts per week based on weekly drop versus the alert reporting threshold for the same group of affiliate entities and same time frame presented in FIG. 8. As FIG. 9 indicates, the number of alerts generally decreases as the alert reporting threshold increases.

In various examples, the systems and methods described herein can be used to adjust the alert reporting threshold, so that an optimal or desired number of alerts is generated based on weekly drop or other measure of security rating rate of change (e.g., daily drop or monthly drop). For example, the systems and methods can adjust the threshold and determine a number of alerts that would have been generated for a given weekly drop time history during a previous time period, such as the year 2019. Referring again to FIG. 7, for example, a user can adjust the threshold 700 for the weekly drop 600, and the systems and methods can calculate a number of alerts that would have been generated for each value of the threshold 700. The calculated number of alerts can be, for example, the total number of alerts generated for 2019. Alternatively or additionally, the calculated number of alerts can be a rate of alert generation, such as a minimum, average, or maximum number of alerts per hour, day, week, or month, during 2019. With this approach, the user can adjust the threshold value (e.g., via trial and error) until a preferred threshold is identified that results in a desired number or frequency of alerts for the security rating 100. The user can then apply the preferred threshold to a future time period, such as the year 2020. For example, the user can set the alert reporting threshold for the affiliate entity (and/or other affiliate entities) to be equal to the preferred threshold, so that future alerts are generated according to the preferred threshold.

In some instances, this approach of adjusting the threshold until a desired number or frequency of alerts is determined for a previous time period can be performed automatically. For example, a user can specify a desired number or frequency of alerts, and the systems and methods can adjust the threshold (e.g., in an iterative manner) until the preferred threshold is identified that results in the desired number or frequency of alerts. The systems and methods can use, for example, an iterative technique, such as Newton's method, the bisection method, and/or interpolation. The systems and methods can choose an initial threshold and automatically adjust the threshold until the preferred threshold is reached.

Additionally or alternatively, the systems and methods described herein can identify how many of an alert recipient's affiliates result in alerts being triggered during a time period (e.g., a previous week, month, or year), for one or more alert reporting thresholds. For example, a value can be specified for the threshold and the number of alerts for each affiliate entity can be calculated for a previous time period (e.g., a previous month or year). The systems and methods can display the number of calculated alerts for each affiliate entity and/or can determine or display a number or percentage of the affiliates that trigger an alert during the time period. In some examples, the threshold can be adjusted until a desired percentage (e.g., 10%, 20%, or 50%) of the affiliates trigger alerts for the time period. The threshold adjustments can be performed automatically using iterative techniques.

FIG. 10 is a flowchart of a method of setting alert thresholds related to security ratings of one or more affiliate entities. Entity data is obtained (step 1002) that includes a plurality of entity data sets. Each entity data set is associated with a respective affiliate entity from a plurality of affiliate entities and includes cybersecurity event data (e.g., information describing events related to cybersecurity) associated with each respective affiliate entity. A time-series cybersecurity rating is calculated (step 1004) for one of the affiliate entities based on the respective entity data set. An alert reporting threshold is associated (step 1006) with the time-series cybersecurity rating. A comparison of the alert reporting threshold to the time-series cybersecurity rating can be used to determine a number of alerts reported for the one of the affiliate entities during a previous time period. An alternative alert reporting threshold is applied (step 1008) against the time-series cybersecurity rating to determine an alternative number of alerts reported for the one of the affiliate entities during the previous time period. The alert reporting threshold for the time-series cybersecurity rating is updated (step 1010) to the alternative alert reporting threshold.

In various examples, the entity data for an affiliate entity can relate to and/or be used to determine cybersecurity risks associated with the affiliate entity. The entity data can be, include, and/or represent, for example, one or more of the following, in any combination: an amount of capital investment in security of the affiliate entity; a measure of employee training in security of the affiliate entity; a measure of organization of a team dedicated to information security; an amount of budget dedicated to information security; a number and/or severity of botnet infection instances of a computer system associated with the affiliate entity; a number of spam propagation instances originating from a computer network associated with the affiliate entity; a number of malware servers associated with the affiliate entity; a number of potentially exploited devices associated with the affiliate entity; a number of hosts authorized to send emails on behalf of each domain associated with the affiliate entity; a determination of whether a DomainKeys Identified Mail (DKIM) record exists for each domain associated with the affiliate entity and/or a key length of a public key associated with a Domain Name System (DNS) record of each domain associated with the affiliate entity; an evaluation of a Secure Sockets Layer (SSL) certificate and/or a Transport Layer Security (TLS) certificate associated with a computer system of the affiliate entity; a number and/or type of service of open ports of a computer network associated with the affiliate entity; an evaluation of security-related fields of an header section of HTTP response messages of hosts associated with the affiliate entity; a rate at which vulnerabilities are patched in a computer network associated with the affiliate entity; an evaluation of file sharing traffic originating from a computer network associated with the affiliate entity; a number of lost records and/or sensitivity of information in the lost records in a data breach of a computer system associated with the affiliate entity; a signal and/or an indication that a host has attempted to contact a service on another host without solicitation (e.g., attempt is unexpected or the service is unsupported), which may occur in some cases due to malware scanning for open network access points on other computers over the Internet; a signal and/or an indication that TLS/SSL configuration of an affiliate entity's server is proper, which can indicate that the security protocol libraries of a server associated with an affiliate entity are correctly configured and/or support strong encryption standards when making connections to other computer systems; a signal and/or an indication that affiliate entity's server system has software that is not supported by software vendors and/or is out-of-date; a presence of Sender Policy Framework (SPF) record(s) in the affiliate entity's domain (including subdomains) (e.g., of an affiliate entity's mail server system) that have sent or attempted to send an email; data indicating the operating system version and/or web browser version of one or more computer systems of the affiliate entity; a number of endpoints (e.g., computer, server, mobile device, media system, and/or appliance having Internet access) of an affiliate entity's computer system in communication with an unintended destination (e.g., a web domain that does not exist or not registered); and/or data indicating the operating system version, device description, web browser version, description of applications of one or more mobile devices in the affiliate entity's computer network. The event data can include or describe one or more cybersecurity events associated with an affiliate entity, such as, for example, an occurrence of a botnet infection of a computer system associated with the affiliate entity; a propagation of spam originating from a computer network associated with the affiliate entity; usage of a malware server associated with the affiliate entity; a signal and/or an indication that TLS/SSL configuration of an affiliate entity's server is proper; a signal and/or an indication that the affiliate entity is or is not using strong or proper encryption standards when making connections to other computer systems; a signal and/or an indication that affiliate entity's server system has software that is not supported by software vendors and/or is out-of-date. Other types of entity data and cybersecurity event data are possible.

In various examples, the subject matter of this application is related to the subject matter of U.S. patent application Ser. No. 15/377,574 titled “Methods and Systems for Creating, De-Duplicating, and Accessing Data Using an Object Storage System” and filed on Dec. 13, 2016 (now U.S. Pat. No. 9,705,932); U.S. patent application Ser. No. 14/021,585 titled “Security Risk Management” and filed on Sep. 9, 2013 (now U.S. Pat. No. 9,438,615); U.S. patent application Ser. No. 13/240,572 titled “Information Technology Security Assessment System” and filed on Sep. 22, 2011; U.S. patent application Ser. No. 14/944,484 titled “Information Technology Security Assessment System” and filed on Nov. 18, 2015 (now U.S. Pat. No. 9,973,524); U.S. patent application Ser. No. 15/142,677 titled “Security Assessment Using Service Provider Digital Asset Information” and filed on Apr. 29, 2016 (now U.S. Pat. No. 9,830,569); U.S. patent application Ser. No. 16/015,686 titled “Methods for Mapping IP Addresses and Domains to Organizations using User Activity Data” and filed on Jun. 22, 2018 (now U.S. Pat. No. 10,425,380); U.S. patent application Ser. No. 16/549,764 titled “Systems and Methods for Inferring Entity Relationships via Network Communications of Users or User Devices” and filed on Aug. 23, 2019; U.S. patent application Ser. No. 16/583,991 titled “Systems and Methods for Network Asset Discovery and Association thereof with Entities” and filed on Sep. 26, 2019; U.S. patent application Ser. No. 16/514,771 titled “Systems and methods for generating security improvement plans for entities” and filed on Jul. 17, 2019; and U.S. patent application Ser. No. 16/802,232 titled “Systems and Methods for Improving a Security Profile of an Entity Based on Peer Security Profiles” and filed on Feb. 26, 2020, each of which is hereby incorporated by reference herein in its entirety.

Computer-Based Implementations

In some examples, some or all of the processing described above can be carried out on a personal computing device, on one or more centralized computing devices, or via cloud-based processing by one or more servers. Some types of processing can occur on one device and other types of processing can occur on another device. Some or all of the data described above can be stored on a personal computing device, in data storage hosted on one or more centralized computing devices, and/or via cloud-based storage. Some data can be stored in one location and other data can be stored in another location. In some examples, quantum computing can be used and/or functional programming languages can be used. Electrical memory, such as flash-based memory, can be used.

FIG. 11 is a block diagram of an example computer system 1100 that may be used in implementing the technology described herein. General-purpose computers, network appliances, mobile devices, or other electronic systems may also include at least portions of the system 1100. The system 1100 includes a processor 1110, a memory 1120, a storage device 1130, and an input/output device 1140. Each of the components 1110, 1120, 1130, and 1140 may be interconnected, for example, using a system bus 1150. The processor 1110 is capable of processing instructions for execution within the system 1100. In some implementations, the processor 1110 is a single-threaded processor. In some implementations, the processor 1110 is a multi-threaded processor. The processor 1110 is capable of processing instructions stored in the memory 1120 or on the storage device 1130.

The memory 1120 stores information within the system 1100. In some implementations, the memory 1120 is a non-transitory computer-readable medium. In some implementations, the memory 1120 is a volatile memory unit. In some implementations, the memory 1120 is a non-volatile memory unit.

The storage device 1130 is capable of providing mass storage for the system 1100. In some implementations, the storage device 1130 is a non-transitory computer-readable medium. In various different implementations, the storage device 1130 may include, for example, a hard disk device, an optical disk device, a solid-state drive, a flash drive, or some other large capacity storage device. For example, the storage device may store long-term data (e.g., database data, file system data, etc.). The input/output device 1140 provides input/output operations for the system 1100. In some implementations, the input/output device 1140 may include one or more network interface devices, e.g., an Ethernet card, a serial communication device, e.g., an RS-232 port, and/or a wireless interface device, e.g., an 802.11 card, a 3G wireless modem, or a 4G wireless modem. In some implementations, the input/output device may include driver devices configured to receive input data and send output data to other input/output devices, e.g., keyboard, printer and display devices 1160. In some examples, mobile computing devices, mobile communication devices, and other devices may be used.

In some implementations, at least a portion of the approaches described above may be realized by instructions that upon execution cause one or more processing devices to carry out the processes and functions described above. Such instructions may include, for example, interpreted instructions such as script instructions, or executable code, or other instructions stored in a non-transitory computer readable medium. The storage device 1130 may be implemented in a distributed way over a network, such as a server farm or a set of widely distributed servers, or may be implemented in a single computing device.

Although an example processing system has been described in FIG. 11, embodiments of the subject matter, functional operations and processes described in this specification can be implemented in other types of digital electronic circuitry, in tangibly-embodied computer software or firmware, in computer hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions encoded on a tangible nonvolatile program carrier for execution by, or to control the operation of, data processing apparatus. Alternatively or in addition, the program instructions can be encoded on an artificially generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus. The computer storage medium can be a machine-readable storage device, a machine-readable storage substrate, a random or serial access memory device, or a combination of one or more of them.

The term “system” may encompass all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. A processing system may include special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit). A processing system may include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.

A computer program (which may also be referred to or described as a program, software, a software application, a module, a software module, a script, or code) can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and it can be deployed in any form, including as a standalone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.

The processes and logic flows described in this specification can be performed by one or more programmable computers executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).

Computers suitable for the execution of a computer program can include, by way of example, general or special purpose microprocessors or both, or any other kind of central processing unit. Generally, a central processing unit will receive instructions and data from a read-only memory or a random access memory or both. A computer generally includes a central processing unit for performing or executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name just a few.

Computer readable media suitable for storing computer program instructions and data include all forms of nonvolatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

To provide for interaction with a user, embodiments of the subject matter described in this specification can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. In addition, a computer can interact with a user by sending documents to and receiving documents from a device that is used by the user; for example, by sending web pages to a web browser on a user's user device in response to requests received from the web browser.

Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet.

The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.

While this specification contains many specific implementation details, these should not be construed as limitations on the scope of what may be claimed, but rather as descriptions of features that may be specific to particular embodiments. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable sub-combination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a sub-combination or variation of a sub-combination.

Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.

Particular embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve desirable results. As one example, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In certain implementations, multitasking and parallel processing may be advantageous. Other steps or stages may be provided, or steps or stages may be eliminated, from the described processes. Accordingly, other implementations are within the scope of the following claims.

Terminology

The phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting.

The term “approximately”, the phrase “approximately equal to”, and other similar phrases, as used in the specification and the claims (e.g., “X has a value of approximately Y” or “X is approximately equal to Y”), should be understood to mean that one value (X) is within a predetermined range of another value (Y). The predetermined range may be plus or minus 20%, 10%, 5%, 3%, 1%, 0.1%, or less than 0.1%, unless otherwise indicated.

The indefinite articles “a” and “an,” as used in the specification and in the claims, unless clearly indicated to the contrary, should be understood to mean “at least one.” The phrase “and/or,” as used in the specification and in the claims, should be understood to mean “either or both” of the elements so conjoined, i.e., elements that are conjunctively present in some cases and disjunctively present in other cases. Multiple elements listed with “and/or” should be construed in the same fashion, i.e., “one or more” of the elements so conjoined. Other elements may optionally be present other than the elements specifically identified by the “and/or” clause, whether related or unrelated to those elements specifically identified. Thus, as a non-limiting example, a reference to “A and/or B”, when used in conjunction with open-ended language such as “comprising” can refer, in one embodiment, to A only (optionally including elements other than B); in another embodiment, to B only (optionally including elements other than A); in yet another embodiment, to both A and B (optionally including other elements); etc.

As used in the specification and in the claims, “or” should be understood to have the same meaning as “and/or” as defined above. For example, when separating items in a list, “or” or “and/or” shall be interpreted as being inclusive, i.e., the inclusion of at least one, but also including more than one, of a number or list of elements, and, optionally, additional unlisted items. Only terms clearly indicated to the contrary, such as “only one of” or “exactly one of,” or, when used in the claims, “consisting of,” will refer to the inclusion of exactly one element of a number or list of elements. In general, the term “or” as used shall only be interpreted as indicating exclusive alternatives (i.e. “one or the other but not both”) when preceded by terms of exclusivity, such as “either,” “one of,” “only one of,” or “exactly one of.” “Consisting essentially of,” when used in the claims, shall have its ordinary meaning as used in the field of patent law.

As used in the specification and in the claims, the phrase “at least one,” in reference to a list of one or more elements, should be understood to mean at least one element selected from any one or more of the elements in the list of elements, but not necessarily including at least one of each and every element specifically listed within the list of elements and not excluding any combinations of elements in the list of elements. This definition also allows that elements may optionally be present other than the elements specifically identified within the list of elements to which the phrase “at least one” refers, whether related or unrelated to those elements specifically identified. Thus, as a non-limiting example, “at least one of A and B” (or, equivalently, “at least one of A or B,” or, equivalently “at least one of A and/or B”) can refer, in one embodiment, to at least one, optionally including more than one, A, with no B present (and optionally including elements other than B); in another embodiment, to at least one, optionally including more than one, B, with no A present (and optionally including elements other than A); in yet another embodiment, to at least one, optionally including more than one, A, and at least one, optionally including more than one, B (and optionally including other elements); etc.

The use of “including,” “comprising,” “having,” “containing,” “involving,” and variations thereof, is meant to encompass the items listed thereafter and additional items.

Use of ordinal terms such as “first,” “second,” “third,” etc., in the claims to modify a claim element does not by itself connote any priority, precedence, or order of one claim element over another or the temporal order in which acts of a method are performed. Ordinal terms are used merely as labels to distinguish one claim element having a certain name from another element having a same name (but for use of the ordinal term), to distinguish the claim elements. 

What is claimed is:
 1. A computer-implemented method of setting alert thresholds related to cybersecurity ratings of one or more affiliate entities, the method comprising: obtaining entity data comprising a plurality of entity data sets, each entity data set associated with a respective affiliate entity from a plurality of affiliate entities and comprising cybersecurity event data associated with each respective affiliate entity; calculating a time-series cybersecurity rating for one or more of the affiliate entities based on the respective entity data set; associating an alert reporting threshold with the time-series cybersecurity rating, wherein a comparison of the alert reporting threshold to the time-series cybersecurity rating determines a number of alerts reported for the one or more affiliate entities; applying an alternative alert reporting threshold against the time-series cybersecurity rating to determine an alternative number of alerts reported for the one or more affiliate entities; and updating the alert reporting threshold for the time-series cybersecurity rating to the alternative alert reporting threshold.
 2. The method of claim 1, wherein the plurality of affiliate entities comprises affiliates of an intended recipient of the alerts.
 3. The method of claim 1, wherein the time-series cybersecurity rating comprises a history of cybersecurity ratings during a previous time period.
 4. The method of claim 1, wherein the alert reporting threshold comprises a threshold cybersecurity rating.
 5. The method of claim 1, wherein the alert reporting threshold comprises a threshold rate of change in the time-series cybersecurity rating.
 6. The method of claim 1, wherein alerts are generated periodically while the time-series cybersecurity rating is either above or below the alert reporting threshold.
 7. The method of claim 1, wherein applying an alternative alert reporting threshold comprises iterating on the alert reporting threshold to achieve a desired number of alerts reported for the one or more affiliate entities during a previous time period.
 8. The method of claim 7, wherein iterating on the alert reporting threshold comprises receiving a user-specified desired number of alerts.
 9. The method of claim 1, wherein applying an alternative alert reporting threshold comprises iterating on the alert reporting threshold until a desired number of affiliate entities from the one or more affiliate entities trigger alerts during a previous time period.
 10. The method of claim 1, further comprising sending alerts to an intended recipient during a future time period using the updated alert reporting threshold.
 11. A system comprising: one or more computer systems programmed to perform operations comprising: obtaining entity data comprising a plurality of entity data sets, each entity data set associated with a respective affiliate entity from a plurality of affiliate entities and comprising cybersecurity event data associated with each respective affiliate entity; calculating a time-series cybersecurity rating for one or more of the affiliate entities based on the respective entity data set; associating an alert reporting threshold with the time-series cybersecurity rating, wherein a comparison of the alert reporting threshold to the time-series cybersecurity rating determines a number of alerts reported for the one or more affiliate entities; applying an alternative alert reporting threshold against the time-series cybersecurity rating to determine an alternative number of alerts reported for the one or more affiliate entities; and updating the alert reporting threshold for the time-series cybersecurity rating to the alternative alert reporting threshold.
 12. The system of claim 11, wherein the plurality of affiliate entities comprises affiliates of an intended recipient of the alerts.
 13. The system of claim 11, wherein the alert reporting threshold comprises a threshold cybersecurity rating.
 14. The system of claim 11, wherein the alert reporting threshold comprises a threshold rate of change in the time-series cybersecurity rating.
 15. The system of claim 11, wherein alerts are generated periodically while the time-series cybersecurity rating is either above or below the alert reporting threshold.
 16. The system of claim 11, wherein applying an alternative alert reporting threshold comprises iterating on the alert reporting threshold to achieve a desired number of alerts reported for the one or more affiliate entities during a previous time period.
 17. The system of claim 16, wherein iterating on the alert reporting threshold comprises receiving a user-specified desired number of alerts.
 18. The system of claim 11, wherein applying an alternative alert reporting threshold comprises iterating on the alert reporting threshold until a desired number of affiliate entities from the one or more affiliate entities trigger alerts during a previous time period.
 19. The system of claim 11, the operations comprising sending alerts to an intended recipient during a future time period using the updated alert reporting threshold.
 20. A non-transitory computer-readable medium having instructions stored thereon that, when executed by one or more computer processors, cause the one or more computer processors to perform operations comprising: obtaining entity data comprising a plurality of entity data sets, each entity data set associated with a respective affiliate entity from a plurality of affiliate entities and comprising cybersecurity event data associated with each respective affiliate entity; calculating a time-series cybersecurity rating for one or more of the affiliate entities based on the respective entity data set; associating an alert reporting threshold with the time-series cybersecurity rating, wherein a comparison of the alert reporting threshold to the time-series cybersecurity rating determines a number of alerts reported for the one or more affiliate entities; applying an alternative alert reporting threshold against the time-series cybersecurity rating to determine an alternative number of alerts reported for the one or more affiliate entities; and updating the alert reporting threshold for the time-series cybersecurity rating to the alternative alert reporting threshold. 